#include "led01.h"
void ledInit()
{

	// 1 时钟使能 pa0-pa7
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
	// 2 gpio初始化
	GPIO_InitTypeDef initDef;
	initDef.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1 | GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4 | GPIO_Pin_5 | GPIO_Pin_6 | GPIO_Pin_7; // pc13
	initDef.GPIO_Mode = GPIO_Mode_Out_PP;
	initDef.GPIO_Speed = GPIO_Speed_50MHz;
	GPIO_Init(LED_PORT, &initDef); // 初始化gpioc

	GPIO_SetBits(LED_PORT, initDef.GPIO_Pin);
}

// 11111110 00000001
// 01111111 00000001=1
// GPIO_Pin_0
void ledWriteData(uint16_t GPIO_Pin_from, u8 num, u8 data)
{

	for (u8 i = 0; i < num; i++)
	{

		if (data & 0x01)
		{
			// 灭
			// #define GPIO_Pin_0                 ((uint16_t)0x0001)  /*!< Pin 0 selected */
			// #define GPIO_Pin_1                 ((uint16_t)0x0002)  /*!< Pin 1 selected */
			// #define GPIO_Pin_2                 ((uint16_t)0x0004)  /*!< Pin 2 selected */
			GPIO_WriteBit(LED_PORT, GPIO_Pin_from << i, Bit_SET);
		}
		else
		{
			// 亮
			GPIO_WriteBit(LED_PORT, GPIO_Pin_from << i, Bit_RESET);
		}
		data = data >> 1;
	}
}
